//
//  main.m
//  福利
//
//  Created by dllo on 16/5/11.
//  Copyright © 2016年 lanou. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
//1..
//    double a = 0.0;
//    printf("请输入:\n");
//    scanf("%lf", &a);
//    printf("$%.2lf%%元\n", a * 1.05);
    
    
//2..
//    double a =0.0, b= 0.0;
//    printf("输入两个数");
//    scanf("%lf,%lf", &a ,&b);
//    printf("%.lf%%",a / b * 100);
    
    
//3..
//    int a = 0;
//    printf("请输入金额\n");
//    scanf("%d", &a);
//    int  n = 0, m = 0, x = 0, y = 0;
//    n = a / 20;
//    m = a % 20 / 10;
//    x = a % 20 % 10 / 5;
//    y = a % 20 % 10 % 5 / 1;
//    
//    printf("$20:%d\n$10:%d\n$5:%d\n$1:%d\n", n, m, x, y);
    
//4..
//    char sex = '\0';
//    printf("输入性别:\n");
//    scanf("%c", &sex);
//    if(sex == 'm') {
//        printf("男性\n");
//    }
    
    
//5..
//    int year = 0;
//    printf("请输入一个年份");
//    scanf("%d", &year);
//    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
//        printf("%d年是闰年", year);
//    } else {
//        printf("%d年不是闰年" , year);
//    }
    
//6..
//    char a = '\0';
//    printf("请输入一个字符:\n");
//    scanf("%c", &a);
//    if (a >= '0' && a <= '9') {
//        printf("%c是数字\n", a);
//    } else if (a >= 'A' && a <= 'Z') {
//        printf("%c是大写字母\n", a);
//    } else if (a >= 'a' && a <= 'z') {
//        printf("%c是小写字母\n", a);
//    } else {
//        printf("%c是其他\n", a);
//    }
    
    
//7..
    
//    enum SEASON{
//        spring,
//        summer,
//        autumn,
//        winter
//    };
//    enum  SEASON a = 0;
//    printf("请输入一个数\n");
//    scanf("%d", &a);
//    switch (a) {
//        case spring :
//            printf("春天\n");
//            break;
//        case summer :
//            printf("夏天\n");
//            break;
//        case autumn :
//            printf("秋天\n");
//            break;
//        case winter :
//            printf("冬天\n");
//            break;
//    }
    
    
//8...
//    int a = 0;
//    printf("输入一个整数");
//    scanf("%d", &a);
//    if (a % 2 != 0) {
//        printf("%d是奇数", a);
//    } else {
//        printf("%d是偶数", a);
//    }
    
    
//9...
//    int a = 0;
//    printf("请输入一个整数\n");
//    scanf("%d" ,&a);
//    
//    if (a > 0) {
//        printf("正数");
//    } else if (a < 0) {
//        printf("负数");
//    } else {
//        printf("0");
//    }
    
    
//10...
//    int a = 12, b = 15, c = 18;
//    if (a > b && a > c) {
//        printf("a年龄最大为:%d", a);
//    } else if (b > a && b > c) {
//        printf("b年龄最大为:%d", b);
//    } else {
//        printf("c年龄最大为:%d", c);
//    }
    
    
//11...
//    double w = 0.0;
//    double p = 0.0;
//    printf("请输入您行李的重量");
//    scanf("%lf", &w);
//    if(w <= 50) {
//        p = w * 0.15;
//    } else if (w > 50){
//        p = w * 0.15 + (w - 50) * 0.1;
//    }
//    printf("运费为:%lf" ,p);

    
//12...
//    double x = 0.0;
//    double y = 0.0;
//    printf("输入一个x的值");
//    scanf("%lf", &x);
//    if (x < 1) {
//        y = x;
//    } else if (x >= 1 && x < 10) {
//        y = 2 * x - 1;
//    } else if (x >= 10) {
//        y = 3 * x - 11;
//    }
//    printf("y:%.2lf\n", y);
    
    
//13...
//    double a = 0.0;
//    double b = 0.0;
//    char c = '\0';
//    printf("请输入");
//    scanf("%lf%c%lf", &a, &c, &b);
//    switch (c) {
//        case '+' :
//            printf("%.2lf", a + b);
//            break;
//        case '-' :
//            printf("%.2lf", a - b);
//            break;
//        case '*' :
//            printf("%.2lf", a * b);
//            break;
//        case '/' :
//            printf("%.2lf", a / b);
//            break;
//    }
    
    
//14...
    
//    int a = 0, b = 0, c = 0;
//    printf("请输入三个数");
//    scanf("%d,%d,%d", &a, &b, &c);
//    if (a + b > c && b + c > a && a + c > b) {
//        printf("能构成三角形");
//    } else {
//        printf("不能构成三角形");
//    }
    
    
//15...
    //(1)
//    int a = 0, b = 0, c = 0;
//    printf("请输入三个数");
//    scanf("%d,%d,%d", &a, &b, &c);
//    int max = 0;
//    max = a > b ? a : b;
//    max = max > c ? max : c;
//    int min = 0;
//    min = a < b ? a : b;
//    min = min < c ? min : c;
//    if (a != max && a != min) {
//        printf("%d", a);
//    } else if (b != max && b != min) {
//        printf("%d", b);
//    } else if (c != max && c != min) {
//        printf("%d", c);
//    }
    
//16...
//    int n = 0;
//    scanf("%d", &n);
//    int i = 0;
//    while (i < n) {
//        int x = arc4random() % 21 + 20;
//        printf("%d," ,x);
//        i++;
//    }
    
//17...
//    int n = 0;
//    scanf("%d", &n);
//    int i = 0;
//    int sum = 0;
//    while (i < n) {
//        int x = arc4random() % 41 + 30;
//        printf("%d," ,x);
//        sum = sum > x ? sum : x;
//        i++;
//    }
//    printf("最大值为:%d\n", sum);
    
    
//18...
//    for (int i = 1 ; i < 101; i++) {
//        if (i % 7 == 0) {
//            printf("%d," , i);
//        }
//    }
    
    
//19...
//    for (int i = 0; i < 101; i++) {
//        if (i % 10 == 7) {
//            printf("%d,",i);
//        }
//    }
    
//20...
//    for (int i = 0; i < 101; i++) {
//        if(i / 10 == 7) {
//            printf("%d,",i);
//        }
//    }
    
//21...
//    for (int i = 0; i < 101; i++) {
//        if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
//            printf("%d,",i);
//        }
//    }
    
 
//22...
//    for (int i = 1; i <= 3; i++) {
//        for (int j = 1; j <= i; j++) {
//            printf("%d", j);
//        }
//        printf("\n");
//    }
    
//23...
//    for (int i = 1; i < 10 ;i++) {
//        for (int j = 1 ; j <= i ;j++){
//            printf("%d*%d=%-3d", j, i, i * j);
//        }
//        printf("\n");
//    }
    
//24...
//    for (int a = 1; a < 10; a++) {
//        for(int b = 0; b < 10; b++) {
//            for(int c = 0; c <10; c++) {
//                printf("%d,",a * 100 + b * 10 + c);
//            }
//        }
//    }
    

//25...
//    int r = 0;
//    int max = 0;
//    for (int i = 1; i < 21 ; i++) {
//        r = arc4random() % 91 + 10;
//        max = max > r ? max : r;
//        printf("%d,", r);
//    }
//    printf("最大数为:%d", max);
    
    
//26...
//    int a = 0, b = 0, c = 0;
//    for (a = 1; a < 10; a++){
//        for (b = 0; b < 10; b++){
//            for (c = 0; c < 10; c++){
//                if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c){
//                    printf("%d,",a * 100 + b * 10 + c);
//                }
//            }
//        }
//    }
    
    
//27...
//    for (int a = 1; a < 10 ; a++) {
//        for (int b = 0 ; b < 10 ; b++) {
//            for (int c = 1; c < 10; c++) {
//                int x = a * 100 + b * 10 + c + c * 100 + b * 10 + a;
//                if (x == 1333) {
//                    printf("%d,%d,%d\n", a, b, c);
//                }
//            }
//        }
//    }
    
//28...
//    int a = 0;
//    int b = 0;
//    
//    printf("请输入两个数,用逗号分隔\n");
//    scanf("%d,%d", &a, &b);
//    
//    for (int i = a < b ? a : b; i > 0; i--) {
//        if (a % i == 0 && b % i == 0){
//            printf("最大公约数为:%d\n",i);
//        }
//        break;
//    }
//    
//    for (int i = a > b ? a : b; i <= a * b; i++) {
//        if (i % a == 0 && i % b == 0) {
//            printf("最小公倍数为:%d\n", i);
//        }
//        break;
//   }
    
    
// 29...
//    double high = 50.0;
//    double sum = 0.0;
//    for (int i = 2; i < 11 ; i++) {
//        sum += high * 2;
//        
//        high = high / 2;
//        
//    }
//    sum = sum + 100;
//    printf("%lf\n", high);
//    printf("%lf\n", sum);
    

// 30...
    
//    int a[20] = {0};
//    int sum = 0;
//    for (int i = 0 ; i < 20; i++) {
//        a[i] = arc4random() % 41 + 30;
//        sum += a[i];
//    }
//    printf("和为:%d",sum);
    
    
// 31...
//    int a[5] = {1, 2, 3, 4, 5};
//    int b[5] = {0};
//    for (int i = 0; i < 5; i++) {
//        b[i] = a[i];
//    }
    
    
// 32...
//    int a[10] = {0};
//    int b[10] = {0};
//    int c[10] = {0};
//    
//    for (int i = 0; i < 10; i++) {
//        a[i] = arc4random() % 21 + 20;
//        b[i] = arc4random() % 21 + 20;
//        c[i] = a[i] + b[i];
//    }
    
    
// 33...
//    int a[10] = {0};
//    for (int i = 0; i < 10; i++) {
//        a[i] = arc4random() % 21 + 20;
//    }
//    
//    for (int i = 0; i < 9; i++) {
//        for (int j = 0; j < 9 - i; j++) {
//            if (a[j] > a[j + 1]) {
//                int temp = 0;
//                temp = a[j];
//                a[j] = a[j + 1];
//                a[j + 1] = temp;
//            }
//        }
//    }
    
// 34...
//    char a[] = "I love iOS, i want an iPhone5s";
//    int x = 0;
//    for (int i = 0; i < strlen(a); i++) {
//        if (a[i] == ' ') {
//            x++;
//        }
//    }
//    printf("%d个空格\n", x);
    
    
// 35...
//    char a[] = "afjnpue";
//    char b[] = {0};
//    
//    for (int i = 0; i < strlen(a) ; i++) {
//        b[i] = a[strlen(a) - i - 1];
//    }
//    b[strlen(a)] = '\0';
//    printf("%s\n", b);
    
// 36...
//    char c1[20] = "iPhone18";
//    int x = strlen(c1);
//    char c2[] = {0};
//    strcpy(c2, c1);
//    printf("%s\n",c2);
//    
//    int y = sizeof(c1);
//    printf("%d\n", y);
//    char c3[] = "I want a ";
//    strcat(c3, c1);
//    strcmp("iPhonE18", c1);
    
// 37...
//    int array[] = {12,13,24,35,47};
//    
//    shuzu(array);
    
    
// 38...
#if 0
    char a[] = "a12b3c45d67g";
    char b[] = {0};
    int x = 0;
    for (int i = 0; i < strlen(a) + 1; i++) {
        if (a[i] < '0' || a[i] > '9') {
            b[x] = a[i];
            x++;
        } else {
            continue;
        }
    }
    printf("%s\n", b);
    
#endif
    //附加1
#if 0
    int temp = 0;
    int array[5] = {1,3,4,2,5};
    int flag = 0;
    for (int i = 0; i < 4; i++) {
        flag = 0;
        for (int j = 0; j < 4 - i; j++) {
            if (array[j] > array[j + 1]) {
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
                flag = 1;
            }
        }
        if (flag == 0) {
            break;
        }
    }
    
    
    
    
    
#endif
    
//思考题
#if 1
//    char a[50] = "ni hao world ioioio";
//    int b[] = {-1};
//    int b_count = 0; //b数组的下标,初始值为0,b[0]为 -1
//    int c[] = {};
//    // 取出字符串中空格和'\0'的下标,存入数组b.
//    for (int i = 1; i < (strlen(a) + 1) ; i++) {
//        if (a[i] == ' ' || a[i] == '\0') {
//            b_count++;
//            b[b_count] = i;
//        }
//    }
//    printf("b的数组:%d\n----\n",b_count);
//    printf("%d\n----\n",b[b_count]);
//    
//    
//    for (int j = 0; j <= b_count ; j++) {
//        printf("b:%d,\n" , b[j]);
//    }
//    // 将b数组中相邻元素的差,存入c数组
//    for (int i = 0; i < b_count ; i++) {
//        c[i] = b[i + 1] - b[i];
//    }
//    
//    for (int j = 0; j < b_count  ; j++) {
//        printf("c:%d,\n" , c[j]);
//    }
//    
//    // 求出c数组中的最大值
//    int max = -1;//从最小值算起
//    for (int i = 0; i < b_count; i++) {
//        max = max > c[i] ? max : c[i];
//    }
//    // 提取c数组最大值的下标,找到对应的b数组下标
//    int k = 0;//k用来存储c数组最大值的下标,不考虑有单词长度相同
//    for (int i = 0; i < b_count; i++) {
//        if(max == c[i]) {
//            k = i;
//        }
//    }
//    //将c最大值的下标对应b数组的下标,取得一个a数组中最大的单词前一个空格的下标
//    for (int i = b[k] + 1; i < b[k + 1]; i++) {
//        printf("%c" , a[i]);
//    }
//    printf("\n");
    
    
    
    char c[] = "ni hao world";
            // a = -1  !!!规避前两个词的极端情况
    int a = 0,b = 0,length = 0;//b:最长单词前面空格的下标,a:最近出现的空格或'\0'
    
    for (int i = 0; i<= strlen(c); i++) {
        
        if (c[i] == ' ' || c[i] == '\0') {
            if (length < i-a) {
                length = i-a;
                b = i -length;
            }
            a = i;
        }
    }
    printf("最长单词是:");
    for (int i = b+1; c[i]!=' ' && c[i] != '\0'; i++) {
        
        printf("%c",c[i]);
        
    }
    printf("\n");
    
    
    
    
    
#endif
    
    
    return 0;
}

//37
//int shuzu(int array[]) {
//    int x = sizeof(array);
//    printf("数组个数为:%d\n", x);
//    for (int i = 0; i < x ; i++) {
//        printf("%d,", array[i]);
//    }
//    return 0;
//}



